iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0

上回我們使用了mssql-scripter成功在我們指定的檔案路徑上產生.sql腳本,但是比較了先前產生的.sql腳本後會發現,使用mssql-scripter自動產生的.sql腳本多了不少的內容,雖然執行後產生的結果在某些情境下可能一樣,但是實際上這是兩個不同的腳本,今天我們來嘗試讓自動產生的腳本符合預期。


先前我們在產生指令碼時,對於選擇物件階段我們是直接從資料表做選擇,而非整個資料庫,所以在mssql-scripter的選項中,我們應該要指定的目標是資料庫中的全資料表結構以及內容,而非整個資料庫,語法如下:

--include-objects {object1 object2 ...}
--include-objects FirstTable SecondTable

接著在設定指令碼編寫選項階段的進階選項中,我們將編寫USE DATABASE的指令碼設為false,所以在mssql-scripter的選項中,我們應該要排除USE DATABASE,語法如下:

--exclude-use-database

最後一我們的需求將我們的各項目組合起來,語法如下:

mssql-scripter -S . -d FirstDataBase  --schema-and-data  --include-objects FirstTable SecondTable  --exclude-use-database  --display-progress  -f C:\temp\FirstDataBase_scripter.sql

執行成功並順利產出.sql腳本後,即能比對先前使用SSMS產生指令碼功能所產出的.sql腳本內容,不過在整個流程上似乎還有一些內容我們可以做調整,後續我們繼續慢慢來優化整個流程。

更多小知識,我們下次見~~


上一篇
DAY 12 :mssql-scripter基本規則及產生指令碼檔案
下一篇
DAY 14 :PowerShell讀取csv檔案作為匯入物件
系列文
沒有厲害的頭腦,也能利用腳本實現懶人寫程式的夢想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言